package cn.kgc.watch.entity;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


@AllArgsConstructor
public class Order {
    /**
    * 订单自增
    */
    private Long orderId;

    /**
    * 订单号唯一
    */
    private String orderNumber;

    /**
    * 买家ID
    */
    private User user;

    /**
    * 交易状态。0为进行中，1,已完成，2,为取消交易,3,已结算
    */
    private Byte tradeStatus;

    /**
    *  支付状态: 1， 未付款: 2,己付款，3,线下付款，4线下付款已收款
    */
    private Byte payStatue;

    /**
    * 订单金项
    */
    private BigDecimal orderAmount;

    /**
    * 付款金额
    */
    private BigDecimal payAmount;

    /**
    * 商品最终金额
    */
    private BigDecimal totalAmount;


    /**
    * 订单支付时间
    */
    private Date payTime;

    /**
    * 交易订单号，比如支付宝给我平台的订单号
    */
    private String orderCradeNo;

    /**
    * 订单创建时间
    */
    private Date createTime;

    /**
    * 省份/直辖市
    */
    private String receiverProvince;

    /**
    * 城市
    */
    private String receiverCity;

    /**
    * 区
    */
    private String receiverRegion;

    /**
    * 详细地址
    */
    private String receiverDetailAddress;


    /**
    * 收货人姓名
    */
    private String receiverName;

    /**
    * 收货人电话
    */
    private String receiverPhone;
    /**
     * 地址表id
     */
    private Address address;
    /**
     * 订单详情
     */
    private List<OrderDetail> orderDetailList;
    /**
     * 订单状态
     * 0.未发货
     * 1.已发货
     * 2.已收货
     * 3.退货申请
     * 4.退货完成
     */
    private Integer orderState;
    /**
     * 发货时间
     */
    private Date outTime;
    /**
     * 收获时间
     */
    private Date deliveryTime;
    /**
     * 申请退货时间
     */
    private Date returnStartTime;
    /**
     * 退货完成时间
     */
    private Date returnEndTime;
    public Order(){

    }
    public Order(Long orderId){
        this.orderId=orderId;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public String getOrderNumber() {
        return orderNumber;
    }

    public void setOrderNumber(String orderNumber) {
        this.orderNumber = orderNumber;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public Byte getTradeStatus() {
        return tradeStatus;
    }

    public void setTradeStatus(Byte tradeStatus) {
        this.tradeStatus = tradeStatus;
    }

    public Byte getPayStatue() {
        return payStatue;
    }

    public void setPayStatue(Byte payStatue) {
        this.payStatue = payStatue;
    }

    public BigDecimal getOrderAmount() {
        return orderAmount;
    }

    public void setOrderAmount(BigDecimal orderAmount) {
        this.orderAmount = orderAmount;
    }

    public BigDecimal getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(BigDecimal payAmount) {
        this.payAmount = payAmount;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    public Date getPayTime() {

        return payTime;
    }

    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    public String getOrderCradeNo() {
        return orderCradeNo;
    }

    public void setOrderCradeNo(String orderCradeNo) {
        this.orderCradeNo = orderCradeNo;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getReceiverProvince() {
        return receiverProvince;
    }

    public void setReceiverProvince(String receiverProvince) {
        this.receiverProvince = receiverProvince;
    }

    public String getReceiverCity() {
        return receiverCity;
    }

    public void setReceiverCity(String receiverCity) {
        this.receiverCity = receiverCity;
    }

    public String getReceiverRegion() {
        return receiverRegion;
    }

    public void setReceiverRegion(String receiverRegion) {
        this.receiverRegion = receiverRegion;
    }

    public String getReceiverDetailAddress() {
        return receiverDetailAddress;
    }

    public void setReceiverDetailAddress(String receiverDetailAddress) {
        this.receiverDetailAddress = receiverDetailAddress;
    }

    public String getReceiverName() {
        return receiverName;
    }

    public void setReceiverName(String receiverName) {
        this.receiverName = receiverName;
    }

    public String getReceiverPhone() {
        return receiverPhone;
    }

    public void setReceiverPhone(String receiverPhone) {
        this.receiverPhone = receiverPhone;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    public List<OrderDetail> getOrderDetailList() {
        return orderDetailList;
    }

    public void setOrderDetailList(List<OrderDetail> orderDetailList) {
        this.orderDetailList = orderDetailList;
    }

    public Integer getOrderState() {
        return orderState;
    }

    public void setOrderState(Integer orderState) {
        this.orderState = orderState;
    }

    public Date getOutTime() {
        return outTime;
    }

    public void setOutTime(Date outTime) {
        this.outTime = outTime;
    }

    public Date getDeliveryTime() {
        return deliveryTime;
    }

    public void setDeliveryTime(Date deliveryTime) {
        this.deliveryTime = deliveryTime;
    }

    public Date getReturnStartTime() {
        return returnStartTime;
    }

    public void setReturnStartTime(Date returnStartTime) {
        this.returnStartTime = returnStartTime;
    }

    public Date getReturnEndTime() {
        return returnEndTime;
    }

    public void setReturnEndTime(Date returnEndTime) {
        this.returnEndTime = returnEndTime;
    }
}